package com.watercube.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface BaseDao<T, K, X> {
	long countByExample(X example);

	int deleteByExample(X example);

	int deleteByPrimaryKey(K clientId);

	int insert(T record);

	int insertSelective(T record);

	List<T> selectByExample(X example);

	T selectByPrimaryKey(K clientId);

	int updateByExampleSelective(@Param("record") T record, @Param("example") X example);

	int updateByExample(@Param("record") T record, @Param("example") X example);

	int updateByPrimaryKeySelective(T record);

	int updateByPrimaryKey(T record);
}